package com.growthserver.service;

import com.growthserver.entity.TMemberDiscountEntity;
import com.growthserver.entity.TMemberEntity;
import com.growthserver.entity.TMemberEquityEntity;
import com.growthserver.entity.TMemberLevelEntity;
import com.growthserver.param.CommonParam;
import com.growthserver.param.TMemberDiscountParam;
import com.growthserver.param.TMemberEquityParam;
import com.growthserver.param.TMemberLevelParam;
import com.growthserver.vo.TMemberDiscountVo;
import com.growthserver.vo.TMemberEquityVo;
import com.growthserver.vo.TMemberLevelVo;

import java.util.HashMap;
import java.util.List;

public interface EquityCenterService {
    /**
     * 会员等级列表展示
     */
    List<TMemberLevelEntity> listDisplay(TMemberLevelParam tMemberLevelParam);

    /**
     *
     * @param tMemberEquityParam
     * @return
     */
    List<TMemberEquityEntity> equityListDisplay(TMemberEquityParam tMemberEquityParam);

    /**
     *
     * @param tMemberDiscountParam
     * @return
     */
    List<TMemberDiscountEntity> discountListDisplay(TMemberDiscountParam tMemberDiscountParam);

    /**
     * 根据 成长值获取用户等级信息
     * @param growthValue
     * @return
     */
    TMemberLevelEntity getUserLeveL(String growthValue,String userType);

    /**
     * 根据ID进行更新数据
     * @param tMemberLevelEntity
     */
    void updateMember(TMemberLevelEntity tMemberLevelEntity);

    /**
     * 根据ID进行更新数据
     * @param tMemberEquityEntity
     */
    void updateEquity(TMemberEquityEntity tMemberEquityEntity);

    /**
     * 根据ID进行更新数据
     * @param tMemberDiscountEntity
     */
    void updateDiscount(TMemberDiscountEntity tMemberDiscountEntity);

    /**
     * 根据ID进行删除
     * @param commonParam
     */
    void deleteMember(CommonParam commonParam);
    /**
     * 根据ID进行是否启用
     * @param commonParam
     */
    void isEnable(CommonParam commonParam);

    /**
     * 创建会员等级
     */
    void createMemberLvl(TMemberLevelVo tMemberLevelVo);
    List<TMemberLevelEntity> memberLvlCheck(TMemberLevelVo tMemberLevelVo);

    /**
     * 会员权益创建
     */
    void createMemberEquity(TMemberEquityVo tMemberEquityVo);

    /**
     *
     * @param tMemberEquityVo
     */
    HashMap<String, Object> memberEquityCheck(TMemberEquityVo tMemberEquityVo);

    /**
     * 会员折扣创建
     */
    void createMemberDiscount(TMemberDiscountVo tMemberDiscountVo);

    /**
     * 权益等级枚举
     */
    List<HashMap<String,String>> equityLvlEnum(CommonParam commonParam);

    /**
     * 权益创建等级枚举
     * @param commonParam
     * @return
     */
    List<HashMap<String,String>> lvlEnum(CommonParam commonParam);

    /**
     * 更新会员信息
     */
    void updateMemberInfo(TMemberEntity tMemberEntity);

}
